<!--
Google IO 2012 HTML5 Slide Template

Authors: Eric Bidelman <ebidel@gmail.com>
         Luke Mahé <lukem@google.com>

URL: https://code.google.com/p/io-2012-slides
-->
<!DOCTYPE html>
<html>
<head>
  <title>Microsoft Visual Studio 2012</title>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="chrome=1">
  <!--<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0">-->
  <!--<meta name="viewport" content="width=device-width, initial-scale=1.0">-->
  <!--This one seems to work all the time, but really small on ipad-->
  <!--<meta name="viewport" content="initial-scale=0.4">-->
  <meta name="apple-mobile-web-app-capable" content="yes">
  <link rel="stylesheet" media="all" href="theme/css/default.css">
  <link rel="stylesheet" media="only screen and (max-device-width: 480px)" href="theme/css/phone.css">
  <base target="_blank"> <!-- This amazingness opens all links in a new tab. -->
  <script data-main="js/slides" src="js/require-1.0.8.min.js"></script>
</head>
<body style="opacity: 0">

<!-- LOGO -->
<slides class="layout-widescreen">

  <slide class="logoslide nobackground">
    <article class="flexbox vcenter">
      <span><img src="images/logoVisualStudio.png"></span>
    </article>
  </slide>

  
<!-- Page de présentation -->
  <slide class="title-slide segue nobackground">
    <aside class="gdbar"><img src="images/logoVisualStudio-min.png"></aside>
    <!-- The content of this hgroup is replaced programmatically through the slide_config.json. -->
    <hgroup class="auto-fadein">
      <h1 data-config-title><!-- populated from slide_config.json --></h1>
      <h2 data-config-subtitle><!-- populated from slide_config.json --></h2>
      <p data-config-presenter><!-- populated from slide_config.json --></p>
    </hgroup>
  </slide>

  <slide>
    <hgroup>
      <h2>Plan VS2012 & TFS12</h2>
    </hgroup>
    <article>
      <ul>		
        <li>Présentation
          <ul>
            <li>Qu'est-ce que Visual Studio 2012?</li>
			<li>Mise en contexte</li>
            <li>Société Microsoft</li>
            <li>La gamme Visual Studio</li>
          </ul>
		  </br>
        </li>
        <li>Visual Studio 2012 VS Visual Studio 2010
          <ul>
            <li>Présentation des graphismes</li>
            <li>Evolution au niveau du code</li>
			<li>Developpement pour Windows 8</li>
			<li>Developpement WEB et Cloud</li>
			<li>Evolution plate-forme ALM (TFS12)</li>
          </ul>
        </li>
      </ul>
    </article>
  </slide>

  <slide>
    <hgroup>
      <h2>Plan VS2012 & TFS12</h2>
    </hgroup>
    <article>
      <ul>	
        <li>Team Foundation Server 12
          <ul>
            <li>Présentation</li>
			<li>Avantages</li>
			<li>Mise en place</li>
          </ul>
		  </br>
        </li>	
        <li>Conclusion 
        </li>
      </ul>
    </article>
  </slide>
  
  <slide>
  <aside class="note">
      <section>
        <ul>
          <li><b>WMI:</b> Windows Management Instrumentation
			</br>Permet de gérer Windows Localement ou à Distance</li>
          <li><b>COM:</b> Component Object Model
			</br>Standard permettant de définir des API Objets</li>
        </ul>
        <p><b></b></p>
      </section>
    </aside>
    <hgroup>
      <h2>Présentation</h2>
    </hgroup>
    <article>
		<b><p>Qu'est-ce que Powershell?</p></b>		
		  <ul class="build">
			<li>Langage de script orienté <b>objet</b></li>
			<li>Shell intéractif</li>
			<li>Se base sur les standards WMI/COM & le framework .NET 2.0</li>
		  </ul>
    </article>
  </slide>
  
  <slide>
    <hgroup>
      <h2>Présentation</h2>
    </hgroup>
    <article>
		<b><p>Pour qui est-ce utile?</p></b>		
		  <ul class="build">
			<li>Pour les administrateurs et les utilisateurs confirmés ayant quelques
			</br>notions en POO et en Systèmes & Réseaux</li>
			<li>Pour les utilisateurs dans un environnement Windows</li>
		  </ul>
		</br>
		<b><p>Pour faire quoi?</p></b>			
		  <ul class="build">
			<li>Administrer un système</li>
			<li>Gérer les paramétrages des composants système imprimante, réseaux,
				<br>IE, création de comptes utilisateurs etc..</br>
			</li>
			<li>Pour paramétrer certains logiciels notamment SCOM (System Center Operations Manager)</li>
		  </ul>		  
    </article>
  </slide>

  <slide>
    <hgroup>
      <h2>Présentation</h2>
    </hgroup>
    <article>
		<b><p>Historique</p></b>		
		  <ul class="build">
			<li>Sortie de Monad Beta 1.0 sur la beta du framework .NET 2.0 
				</br>Disponible pour les béta testeurs (Juin 2004)</li>
			<li>Faille de sécurité, Microsoft n'intègre pas Monad sur
				</br>Windows Vista & 2003 R2 (Aout 2005)</li>
			<li>Monad Beta 2.0 + .NET 2.0 Release Candidate(Septembre 2005)</li>
			<li>Monad Beta 3.1 + .NET 2.0 RTM(Décembre 2005)</li>		
			<li>"Monad" remplacé par "Powershell" au lieu "Windows Command Shell"
				</br>d'où l'extension WSH (Avril 2006)</li>		
			<li>Powershell intégré aux environnement serveurs version R2 (Mai 2006)</li>
			<li>Powershell v2 (Mai 2010)</li>		
			<li>Powershell v3 soon......</li>		
		  </ul>
		</br>	 
    </article>
  </slide>  
  
  <slide>
    <hgroup>
      <h2>Outils et pré-requis</h2>
    </hgroup>
    <article>
		<b><p>OS supportés</p></b>		
		  <ul class="build">
			<li>Windows XP Service Pack 2</li>
			<li>Windows Server 2003 Service Pack 1</li>
			<li>Windows Vista</li>
			<li>Windows Seven</li>		
			<li>Windows Server 2008</li>		
		  </ul>
		</br>	 
    </article>
  </slide>  
  
  <slide>
    <hgroup>
      <h2>Outils et pré-requis</h2>
    </hgroup>
    <article>
		<b><p>Comment installer Powershell?</p></b>		
		  <ul class="build">
			<li>Installer le .NET Framework 2.0</li>
			<li>Installer le package PowerShell</li>
			<li>Intégré sous Windows 7, Windows Server 2008 et Windows 8 (Powershell V3)</li>
			</br>
			<img src="images/installps.png" alt="Description" title="Description" style="margin-left: 175px;">
		  </ul>
		</br>	 
    </article>
  </slide> 
 
   <slide>
    <hgroup>
      <h2>Syntaxe</h2>
    </hgroup>
    <article>
		<b><p>Commande</p></b>		
			<li>Se présente sous la forme [VERBE]-[NOM]</li>
			</br>
				<pre class="prettyprint" data-lang="powershell">
	Get-Command
	Set-Alias
	..
				</pre>
			<li>Commande avec paramètres</li>
				</br>
				<pre class="prettyprint" data-lang="powershell">
	Set-Alias –Name [NOM] –Value [COMMANDE]
				</pre> 
    </article>
  </slide> 
 
  <slide>
    <hgroup>
      <h2>Environnements</h2>
    </hgroup>
    <article>
		<b><p>Console Powershell</p></b>
			</br>
			<img src="images/consolePs.png" alt="Description" title="Description" style = "margin-left: 20px">
		</br>		
    </article>
  </slide> 
 
 <slide>
    <hgroup>
      <h2>Environnements</h2>
    </hgroup>
    <article>
		<b><p>Powershell Integrated Scripting Environment(ISE) </p></b>
			</br>
			<img src="images/ISU.png" alt="Description" title="Description" style = "width: 800px; margin-left: 90px;">
		</br>	 
    </article>
  </slide> 
  
   <slide>
    <hgroup>
      <h2>Personnalisation</h2>
      <h3>Add-on</h3>
    </hgroup>
    <article>
		<b><p>Création fonction SearchForSelected()</p></b>
      <pre class="prettyprint" data-lang="powershell">

  // Récupère le texte qui a été sélectionné
  // Puis ouvre internet explorer pour rechercher sur google le texte
  function SearchForSelected() {
        $ie = new-object -comobject "InternetExplorer.Application"  
        $ie.visible = $true  
        <b>$selected = $psISE.CurrentFile.Editor.SelectedText</b>
        $ie.navigate(
            "http://www.google.fr/search?hl=fr&source=hp&q=$($selected)"
        ) 
    }
  }
		</pre>
    </article>
  </slide>
  
  <slide>
    <hgroup>
      <h2>Personnalisation</h2>
      <h3>Add-on</h3>
    </hgroup>
    <article>
		<b><p>Ajout Add-on Search Selected</p></b>
      <pre class="prettyprint" data-lang="powershell">

  // Ajoute la fonction dans le menu Add-on du profil courant (Administration)
  // Puis ouvre internet explorer pour rechercher sur google le texte
  $psISE.CurrentPowerShellTab.AddOnsMenu.Submenus.Add(
       "Search Selected",
       {SearchForSelected},
       "Ctrl+Shift+Q")
		</pre>
    </article>
  </slide>
 
  <slide>
    <hgroup>
      <h2>Personnalisation</h2>
    </hgroup>
    <article>
		<b><p>Utilisation de notre bel add-on </p></b>
		</br>
			<img src="images/addon.png" alt="Description" title="Description" style = "width: 800px; margin-left: 90px;">
		</br>	 
    </article>
  </slide>
 
   <slide>
    <hgroup>
      <h2>Personnalisation</h2>
    </hgroup>
    <article>
		<b><p>Résultat add-on "Search Selected"</p></b>
			<img src="images/googlesearch.png" alt="Description" title="Description" style = "margin-left: 20px">
		</br>	 
    </article>
  </slide> 
 
  <slide>
  <aside class="note">
      <section>
        <ul>
          <li><b>COM:</b> Permet notamment d'invoquer les fonctionnalités de beaucoup de
			</br>soft tels que Microsoft Word, Access, Excel, Outlook et bien d'autres</li>
        </ul>
        <p><b></b></p>
      </section>
    </aside>
    <hgroup>
      <h2>Exemple</h2>
    </hgroup>
    <article>
		<b><p>Standard COM</p></b>		
		  <ul class="build">
			<video src="video/sample1.mp4" type="video/mp4" height="400" width = "1000" loop="loop" autoplay="autoplay" style = "margin-left: -35px;"/>
		  </ul>
		</br>	 
    </article>
  </slide> 
  
    <slide>
    <hgroup>
      <h2>Exemple</h2>
    </hgroup>
    <article>
		<b><p>Auto réponse absence Mail</p></b>
      <pre class="prettyprint" data-lang="powershell">

	// Paramètre votre boîte mail afin d'envoyer des réponses automatique lors de 
	//receptions de mail pendant une absence
	//Active l'autoréponse
	$message = "Bonjour, la personne que vous souhaitez contacter est absente et ne pourra 
	pas lire votre message avant le 15/06/2013."
	Set-MailboxAutoReplyConfiguration jleroch 
		-AutoReplyState enabled 
		-ExternalAudience all 
		-InternalMessage $message 
		-ExternalMessage $message
	
	//Desactive l'autoréponse
	Set-MailboxAutoReplyConfiguration jleroch -AutoReplyState disabled
		</pre>
    </article>
  </slide>
 
     <slide>
    <hgroup>
      <h2>Exemple</h2>
    </hgroup>
    <article>
		<b><p>Mise à jour manager</p></b>
      <pre class="prettyprint" data-lang="powershell">
#chargement des Snapin
Add-PSSnapin Quest.ActiveRoles.ADManagement
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010

#Definition des objets
$objOU=[ADSI]"LDAP://localhost:389/ou=Users,ou=SAO,dc=groupeais,dc=fr"
$Records = import-csv -Path C:\Scripts\MajManager\traitement.csv -OutVariable string
$domaine = "GROUPEAIS\"

		</pre>
    </article>
  </slide>
 
      <slide>
    <hgroup>
      <h2>Exemple</h2>
    </hgroup>
    <article>
      <pre class="prettyprint" data-lang="powershell">
#Lecture du fichier 
foreach ($user in $Records)
{

   write-output ([string]::Concat("Ajout du manager pour ==> ",$user.nni))
   $loginfull = [string]::Concat('GROUPEAIS\',$user.nni)
   
   
   if(($user.NomPrenom) -ne ""){ 
            #mise en forme de l'info manager
            $avecCN = [string]::Concat('CN=',$user.NomPrenom)
            $manager = [string]::Concat($avecCN,',OU=Users,OU=SAO,DC=groupeais,DC=fr')
            Set-QADUser -Identity $loginfull -Manager $manager
   }
   
}
		</pre>
    </article>
  </slide>
 
 <slide class="thank-you-slide segue nobackground">
    <aside class="gdbar right"><img src="images/logo-powershell-min.png"></aside>
    <article class="flexbox vleft auto-fadein">
      <h2>Merci!</h2>
      <p>Au tour des questions...</p>
	  </br>
	  </br>
	  </br>
	  </br>
	  </br>
	  </br>
	  </br>
	  </br>
	  </br>
	  </br>
	  </br>
	  </br>
	  <p>MARTINET Pierre
	  </br>CP</p>
    </article>
  </slide>
   

  <slide class="backdrop"></slide>

</slides>

<script>
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXXXX-1']);
_gaq.push(['_trackPageview']);

(function() {
  var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
  ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
  var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>

<!--[if IE]>
  <script src="http://ajax.googleapis.com/ajax/libs/chrome-frame/1/CFInstall.min.js"></script>
  <script>CFInstall.check({mode: 'overlay'});</script>
<![endif]-->
</body>
</html>
